home *** CD-ROM | disk | FTP | other *** search
- @ECHO OFF
- REM This is COLOR.BAT
- REM It shows use of MENU and DISPATCH "subroutines"
- IF NOT EXIST FOREG.COM GOTO OOPS
- IF NOT EXIST BACKG.COM GOTO OOPS
- BACKG
- SET C=back
- GOTO MENU
- :BACK
- FOREG
- SET C=fore
- GOTO MENU
- :FORE
- ECHO Want to change these colors (Y or N)?
- KEY
- IF ERRORLEVEL 89 IF NOT ERRORLEVEL 90 GOTO CHANGEFG
- GOTO END
- :CHANGEFG
- SET D=FG
- CLS
- ECHO Pick a foreground color:
- ECHO Black (0)
- ECHO Red (1)
- ECHO Green (2)
- ECHO Yellow (3)
- ECHO Blue (4)
- ECHO Magenta (5)
- ECHO Cyan (6)
- ECHO White (7)
- ECHO (Or Press Esc to abort)
- KEY
- GOTO DISPATCH
- :CHANGEBG
- SET D=BG
- ECHO Pick a background color:
- IF NOT %FG%==0 ECHO Black (0)
- IF NOT %FG%==1 ECHO Red (1)
- IF NOT %FG%==2 ECHO Green (2)
- IF NOT %FG%==3 ECHO Yellow (3)
- IF NOT %FG%==4 ECHO Blue (4)
- IF NOT %FG%==5 ECHO Magenta (5)
- IF NOT %FG%==6 ECHO Cyan (6)
- IF NOT %FG%==7 ECHO White (7)
- ECHO (Or Press Esc to abort)
- KEY
- GOTO DISPATCH
- :DUPCHEK
- IF NOT %FG%==%BG% GOTO RESET
- ECHO CanÆt have the same foreground and background!
- GOTO CHANGEBG
- :MENU
- ECHO Your current %C%ground color is:
- IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 ECHO Black (0)
- IF ERRORLEVEL 4 IF NOT ERRORLEVEL 5 ECHO Red(1)
- IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 ECHO Green (2)
- IF ERRORLEVEL 6 IF NOT ERRORLEVEL 7 ECHO Yellow (3)
- IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ECHO Blue (4)
- IF ERRORLEVEL 5 IF NOT ERRORLEVEL 6 ECHO Magenta (5)
- IF ERRORLEVEL 3 IF NOT ERRORLEVEL 4 ECHO Cyan (6)
- IF ERRORLEVEL 7 IF NOT ERRORLEVEL 8 ECHO White (7)
- GOTO %C%
- :DISPATCH
- IF ERRORLEVEL 56 GOTO CHANGE%D%
- IF ERRORLEVEL 55 IF NOT ERRORLEVEL 56 SET %D%=7
- IF ERRORLEVEL 54 IF NOT ERRORLEVEL 55 SET %D%=6
- IF ERRORLEVEL 53 IF NOT ERRORLEVEL 54 SET %D%=5
- IF ERRORLEVEL 52 IF NOT ERRORLEVEL 53 SET %D%=4
- IF ERRORLEVEL 51 IF NOT ERRORLEVEL 52 SET %D%=3
- IF ERRORLEVEL 50 IF NOT ERRORLEVEL 51 SET %D%=2
- IF ERRORLEVEL 49 IF NOT ERRORLEVEL 50 SET %D%=1
- IF ERRORLEVEL 48 IF NOT ERRORLEVEL 49 SET %D%=0
- IF ERRORLEVEL 27 IF NOT ERRORLEVEL 28 GOTO END
- IF ERRORLEVEL 0 IF NOT ERRORLEVEL 48 GOTO CHANGE%D%
- IF %D%!==FG! GOTO CHANGEBG
- IF %D%!==BG! GOTO DUPCHEK
- :RESET
- SET O=%PROMPT%
- ECHO ON
- PROMPT $E[0;3%FG%;4%BG%m
- ECHO OFF
- PROMPT=%O%
- CLS
- GOTO END
- :OOPS
- ECHO This needs FOREG.COM and BACKG.COM to work
- :END
- SET O=
- SET FG=
- SET BG=
- SET C=
- SET D=
-